/*******************************************************************
 * Created Wed Feb 15 11:48:10 2012 by Tuxedo V8.0-01 (C++ Bindings)
 *******************************************************************
 */

/*
 * Skeleton functions: (ppm_s.cpp)
 * ------------------------------------------------------------
 *
 * This module contains the skeleton functions for the following
 * Implementations:
 *
 *    IPpm_i
 *    PpmFactory_i
 *
 */

#include "orbminor.h"
#include "ppm_s.h"

// Server registration data and class function
OBB::OBBInterfaceInfo POA_Ppm_IPpm_info[1] = 
{
{(char*)"IDL:Ppm/IPpm:1.0", (char*)"IDL:POA_Ppm/IPpm_i:1.0", 1, 3}
};
static OBB::OBBInterfaceDescriptor POA_Ppm_IPpm_Interfaces (POA_Ppm_IPpm_info, 1);


//
//
// Function Name:	Ppm::IPpm::_this
//
// Functional Description:
//
//	This is the _this function of the POA skeleton.
//
//

Ppm::IPpm_ptr
POA_Ppm::IPpm::_this()
{
    ::CORBA::Object_ptr obj_ptr = OBB__this();
    Ppm::IPpm_ptr ret_ptr = Ppm::IPpm::_narrow(obj_ptr);

    ::CORBA::release(obj_ptr);
    return ret_ptr;
}


//
//
// Function Name:	POA_Ppm::IPpm::invoke
//
// Functional Description:
//
//	This is the invoke function of the POA skeleton.
//
//

void
POA_Ppm::IPpm::invoke (
        ::CORBA::ServerRequest_ptr _nasreq) 
{
static const struct {
	CORBA::Char    Bucket0 [14];	CORBA::Char    Bucket1 [47];
	CORBA::Char    Bucket2 [20];	CORBA::Char    Bucket3 [15];
	CORBA::Char    Bucket4 [77];	CORBA::Char    Bucket5 [44];
	CORBA::Char    Bucket6 [26];	CORBA::Char    Bucket7 [53];
	CORBA::Char    Bucket8 [15];	CORBA::Char    Bucket9 [26];
	CORBA::Char    Bucket10 [61];	CORBA::Char    Bucket11 [29];
	CORBA::Char    Bucket12 [17];	CORBA::Char    Bucket13 [47];
	CORBA::Char    Bucket14 [14];	CORBA::Char    Bucket15 [23];
	CORBA::Char    Bucket16 [12];	CORBA::Char    Bucket17 [15];
	CORBA::Char    Bucket18 [18];	CORBA::Char    Bucket19 [25];
	CORBA::Char    Bucket20 [22];	CORBA::Char    Bucket21 [31];
	CORBA::Char    Bucket22 [25];	CORBA::Char    Bucket23 [22];
	CORBA::Char    Bucket24 [72];	CORBA::Char    Bucket25 [39];
	CORBA::Char    Bucket26 [17];	CORBA::Char    Bucket27 [16];
	CORBA::Char    Bucket28 [45];	CORBA::Char    Bucket29 [14];
	CORBA::Char    Bucket30 [24];	CORBA::Char    Bucket31 [18];
	CORBA::Char    Bucket32 [24];	CORBA::Char    Bucket33 [10];
	CORBA::Char    Bucket34 [18];	CORBA::Char    Bucket35 [14];
	CORBA::Char    Bucket36 [13];	CORBA::Char    Bucket37 [21];
	CORBA::Char    Bucket38 [40];	CORBA::Char    Bucket39 [27];
	CORBA::Char    Bucket40 [15];	CORBA::Char    Bucket41 [12];
	CORBA::Char    Bucket42 [17];	CORBA::Char    Bucket43 [20];
	CORBA::Char    Bucket44 [12];	CORBA::Char    Bucket45 [40];
	CORBA::Char    Bucket46 [20];    } _BT = {
        "saveAttrSpec\000",
        "mdseComposition\000queryTaskBySimilitudeAndMutex\000",
        "queryInterfaceInfo\000",
        "queryFlowInfo\000",
        "GroupProdOfferReleaseSV\000saveApplicationCatalog\000userAndIncomeThresholdConfig\000",
        "filterApplicationInfo\000queryThresholdConfig\000",
        "operateCatalogPermission\000",
        "operateStaffPermission\000queryContactAppListByAppCode\000",
        "queryTempSpec\000",
        "queryOperatorByCatalogId\000",
        "operateFlowTimeRecord\000saveApplicationInfo\000savePriceTemplate\000",
        "querySimilitudeAndMutexTree\000",
        "operatePPMOrder\000",
        "operateCfgRelation\000queryTeamInfo\000saveTempSpec\000",
        "singleSignOn\000",
        "createApplicationCode\000",
        "createTask\000",
        "VAProdOfferSV\000",
        "dispatchPPMOrder\000",
        "queryApplicationCatalog\000",
        "ProdConfigCompleteSV\000",
        "queryPpmPriceDescItemSpecTree\000",
        "queryAppAndTestTraining\000",
        "queryStaffPermission\000",
        "createProcOrd\000getPpmPriceRemark\000queryAppVersionList\000queryPriceTemplate\000",
        "queryApplicationInfo\000queryCfgRelation\000",
        "querySysCfgTree\000",
        "queryPricePlan\000",
        "queryAccessoriesRela\000queryCatalogPermission\000",
        "procMdseRela\000",
        "queryTemplateBasicInfo\000",
        "queryMktResource\000",
        "queryPPMOrderOperation\000",
        "VAProdSV\000",
        "pubSendInterFace\000",
        "queryProcOrd\000",
        "querySPInfo\000",
        "queryFlowTimeRecord\000",
        "operateInterSendInfo\000saveBasicAttrTree\000",
        "modifyTaskLevel\000queryTask\000",
        "queryAttrSpec\000",
        "Statistics\000",
        "operaterLogInfo\000",
        "GroupProdReleaseSV\000",
        "operateDir\000",
        "queryBasicAttrTree\000saveAccessoriesRela\000",
        "_is_a\000queryLogInfo\000"
    };
static  OBBHashTableEntry     _HT [65] = {
    {   0,     0 },    {   1,    14 },    {   3,    61 },    {   4,    81 },
    {  -1, 65535 },    {  -1, 65535 },    {  -1, 65535 },    {  -1, 65535 },
    {   5,    96 },    {   8,   173 },    {  10,   217 },    {  -1, 65535 },
    {  11,   243 },    {  13,   296 },    {  14,   311 },    {  15,   337 },
    {  18,   398 },    {  19,   427 },    {  -1, 65535 },    {  -1, 65535 },
    {  20,   444 },    {  23,   491 },    {  24,   505 },    {  25,   528 },
    {  26,   540 },    {  -1, 65535 },    {  27,   555 },    {  -1, 65535 },
    {  28,   573 },    {  -1, 65535 },    {  29,   598 },    {  30,   620 },
    {  31,   651 },    {  -1, 65535 },    {  32,   676 },    {  33,   698 },
    {  37,   770 },    {  39,   809 },    {  40,   826 },    {  41,   842 },
    {  43,   887 },    {  44,   901 },    {  45,   925 },    {  46,   943 },
    {  47,   967 },    {  -1, 65535 },    {  -1, 65535 },    {  -1, 65535 },
    {  48,   977 },    {  49,   995 },    {  50,  1009 },    {  51,  1022 },
    {  -1, 65535 },    {  52,  1043 },    {  -1, 65535 },    {  54,  1083 },
    {  56,  1110 },    {  57,  1125 },    {  58,  1137 },    {  59,  1154 },
    {  -1, 65535 },    {  -1, 65535 },    {  60,  1174 },    {  61,  1186 },
    {  63,  1226 }
    };
static ::CORBA::UShort _OM[65] = {
	37,63,29,46,14,59,4,41,42,43,20,22,35,3,28,
	30,6,53,27,12,17,50,2,49,15,8,57,62,5,55,
	25,40,23,10,26,24,54,7,18,19,48,52,21,61,39,
	38,13,56,60,11,45,33,47,0,34,9,36,44,32,58,
	16,1,51,64,31
    };
 ::CORBA::UShort          method_index;
 ::CORBA::Short           oper_index;
 OBBArgument            *arginfo;
 ::CORBA::ULong           arg_count;
 OBB::ServerRequest     *obb_request = OBB::ServerRequest::OBB__convert_scope(_nasreq);
 OBB::MinorCode         _m1 = (OBB::MinorCode)OBBMC_INV_MTHDNOTFND;
 OBB::MinorCode         _m2 = (OBB::MinorCode)OBBMC_INV_ARGMISMCHNUM;
 const char             *op = obb_request->operation();
 ::CORBA::Context_ptr     reqctx;

 /*..............................................................*/

 oper_index = OBB::OBB__method_hash(op, 65, _HT, (const char *) &_BT.Bucket0);
 if (oper_index < 0)
    { obb_request->OBB__set_exception_from_minor(_m1); return; }
 method_index = _OM[oper_index];
 arginfo = getparams(method_index, obb_request, arg_count);
 obb_request->OBB__arguments();

 reqctx = obb_request->OBB__ctx();

 switch ( method_index )
    {
    case 0 : /* saveBasicAttrTree */
        {
        if ( arg_count < 3 )
        {
           obb_request->OBB__set_exception_from_minor(_m2);
           return;
        }

        * ((::CORBA::Short *) (arginfo[0].ValuePtr)) = saveBasicAttrTree (
            * ((::CORBA::Char * *) (arginfo[1].ValuePtr)),
            * ((::CORBA::Char * *) (arginfo[2].ValuePtr))
        );
        
        break;
        }

    case 1 : /* queryBasicAttrTree */
        {
        if ( arg_count < 3 )
        {
           obb_request->OBB__set_exception_from_minor(_m2);
           return;
        }

        * ((::CORBA::Short *) (arginfo[0].ValuePtr)) = queryBasicAttrTree (
            * ((::CORBA::Char * *) (arginfo[1].ValuePtr)),
            * ((::CORBA::Char * *) (arginfo[2].ValuePtr))
        );
        
        break;
        }

    case 2 : /* saveTempSpec */
        {
        if ( arg_count < 3 )
        {
           obb_request->OBB__set_exception_from_minor(_m2);
           return;
        }

        * ((::CORBA::Short *) (arginfo[0].ValuePtr)) = saveTempSpec (
            * ((::CORBA::Char * *) (arginfo[1].ValuePtr)),
            * ((::CORBA::Char * *) (arginfo[2].ValuePtr))
        );
        
        break;
        }

    case 3 : /* queryTempSpec */
        {
        if ( arg_count < 3 )
        {
           obb_request->OBB__set_exception_from_minor(_m2);
           return;
        }

        * ((::CORBA::Short *) (arginfo[0].ValuePtr)) = queryTempSpec (
            * ((::CORBA::Char * *) (arginfo[1].ValuePtr)),
            * ((::CORBA::Char * *) (arginfo[2].ValuePtr))
        );
        
        break;
        }

    case 4 : /* saveApplicationCatalog */
        {
        if ( arg_count < 3 )
        {
           obb_request->OBB__set_exception_from_minor(_m2);
           return;
        }

        * ((::CORBA::Short *) (arginfo[0].ValuePtr)) = saveApplicationCatalog (
            * ((::CORBA::Char * *) (arginfo[1].ValuePtr)),
            * ((::CORBA::Char * *) (arginfo[2].ValuePtr))
        );
        
        break;
        }

    case 5 : /* queryApplicationCatalog */
        {
        if ( arg_count < 3 )
        {
           obb_request->OBB__set_exception_from_minor(_m2);
           return;
        }

        * ((::CORBA::Short *) (arginfo[0].ValuePtr)) = queryApplicationCatalog (
            * ((::CORBA::Char * *) (arginfo[1].ValuePtr)),
            * ((::CORBA::Char * *) (arginfo[2].ValuePtr))
        );
        
        break;
        }

    case 6 : /* saveApplicationInfo */
        {
        if ( arg_count < 3 )
        {
           obb_request->OBB__set_exception_from_minor(_m2);
           return;
        }

        * ((::CORBA::Short *) (arginfo[0].ValuePtr)) = saveApplicationInfo (
            * ((::CORBA::Char * *) (arginfo[1].ValuePtr)),
            * ((::CORBA::Char * *) (arginfo[2].ValuePtr))
        );
        
        break;
        }

    case 7 : /* queryApplicationInfo */
        {
        if ( arg_count < 3 )
        {
           obb_request->OBB__set_exception_from_minor(_m2);
           return;
        }

        * ((::CORBA::Short *) (arginfo[0].ValuePtr)) = queryApplicationInfo (
            * ((::CORBA::Char * *) (arginfo[1].ValuePtr)),
            * ((::CORBA::Char * *) (arginfo[2].ValuePtr))
        );
        
        break;
        }

    case 8 : /* createTask */
        {
        if ( arg_count < 3 )
        {
           obb_request->OBB__set_exception_from_minor(_m2);
           return;
        }

        * ((::CORBA::Short *) (arginfo[0].ValuePtr)) = createTask (
            * ((::CORBA::Char * *) (arginfo[1].ValuePtr)),
            * ((::CORBA::Char * *) (arginfo[2].ValuePtr))
        );
        
        break;
        }

    case 9 : /* queryTask */
        {
        if ( arg_count < 3 )
        {
           obb_request->OBB__set_exception_from_minor(_m2);
           return;
        }

        * ((::CORBA::Short *) (arginfo[0].ValuePtr)) = queryTask (
            * ((::CORBA::Char * *) (arginfo[1].ValuePtr)),
            * ((::CORBA::Char * *) (arginfo[2].ValuePtr))
        );
        
        break;
        }

    case 10 : /* createProcOrd */
        {
        if ( arg_count < 3 )
        {
           obb_request->OBB__set_exception_from_minor(_m2);
           return;
        }

        * ((::CORBA::Short *) (arginfo[0].ValuePtr)) = createProcOrd (
            * ((::CORBA::Char * *) (arginfo[1].ValuePtr)),
            * ((::CORBA::Char * *) (arginfo[2].ValuePtr))
        );
        
        break;
        }

    case 11 : /* queryProcOrd */
        {
        if ( arg_count < 3 )
        {
           obb_request->OBB__set_exception_from_minor(_m2);
           return;
        }

        * ((::CORBA::Short *) (arginfo[0].ValuePtr)) = queryProcOrd (
            * ((::CORBA::Char * *) (arginfo[1].ValuePtr)),
            * ((::CORBA::Char * *) (arginfo[2].ValuePtr))
        );
        
        break;
        }

    case 12 : /* operatePPMOrder */
        {
        if ( arg_count < 3 )
        {
           obb_request->OBB__set_exception_from_minor(_m2);
           return;
        }

        * ((::CORBA::Short *) (arginfo[0].ValuePtr)) = operatePPMOrder (
            * ((::CORBA::Char * *) (arginfo[1].ValuePtr)),
            * ((::CORBA::Char * *) (arginfo[2].ValuePtr))
        );
        
        break;
        }

    case 13 : /* queryPPMOrderOperation */
        {
        if ( arg_count < 3 )
        {
           obb_request->OBB__set_exception_from_minor(_m2);
           return;
        }

        * ((::CORBA::Short *) (arginfo[0].ValuePtr)) = queryPPMOrderOperation (
            * ((::CORBA::Char * *) (arginfo[1].ValuePtr)),
            * ((::CORBA::Char * *) (arginfo[2].ValuePtr))
        );
        
        break;
        }

    case 14 : /* queryFlowInfo */
        {
        if ( arg_count < 3 )
        {
           obb_request->OBB__set_exception_from_minor(_m2);
           return;
        }

        * ((::CORBA::Short *) (arginfo[0].ValuePtr)) = queryFlowInfo (
            * ((::CORBA::Char * *) (arginfo[1].ValuePtr)),
            * ((::CORBA::Char * *) (arginfo[2].ValuePtr))
        );
        
        break;
        }

    case 15 : /* createApplicationCode */
        {
        if ( arg_count < 3 )
        {
           obb_request->OBB__set_exception_from_minor(_m2);
           return;
        }

        * ((::CORBA::Short *) (arginfo[0].ValuePtr)) = createApplicationCode (
            * ((::CORBA::Char * *) (arginfo[1].ValuePtr)),
            * ((::CORBA::Char * *) (arginfo[2].ValuePtr))
        );
        
        break;
        }

    case 16 : /* operateDir */
        {
        if ( arg_count < 3 )
        {
           obb_request->OBB__set_exception_from_minor(_m2);
           return;
        }

        * ((::CORBA::Short *) (arginfo[0].ValuePtr)) = operateDir (
            * ((::CORBA::Char * *) (arginfo[1].ValuePtr)),
            * ((::CORBA::Char * *) (arginfo[2].ValuePtr))
        );
        
        break;
        }

    case 17 : /* operateCfgRelation */
        {
        if ( arg_count < 3 )
        {
           obb_request->OBB__set_exception_from_minor(_m2);
           return;
        }

        * ((::CORBA::Short *) (arginfo[0].ValuePtr)) = operateCfgRelation (
            * ((::CORBA::Char * *) (arginfo[1].ValuePtr)),
            * ((::CORBA::Char * *) (arginfo[2].ValuePtr))
        );
        
        break;
        }

    case 18 : /* queryCfgRelation */
        {
        if ( arg_count < 3 )
        {
           obb_request->OBB__set_exception_from_minor(_m2);
           return;
        }

        * ((::CORBA::Short *) (arginfo[0].ValuePtr)) = queryCfgRelation (
            * ((::CORBA::Char * *) (arginfo[1].ValuePtr)),
            * ((::CORBA::Char * *) (arginfo[2].ValuePtr))
        );
        
        break;
        }

    case 19 : /* querySysCfgTree */
        {
        if ( arg_count < 3 )
        {
           obb_request->OBB__set_exception_from_minor(_m2);
           return;
        }

        * ((::CORBA::Short *) (arginfo[0].ValuePtr)) = querySysCfgTree (
            * ((::CORBA::Char * *) (arginfo[1].ValuePtr)),
            * ((::CORBA::Char * *) (arginfo[2].ValuePtr))
        );
        
        break;
        }

    case 20 : /* operateCatalogPermission */
        {
        if ( arg_count < 3 )
        {
           obb_request->OBB__set_exception_from_minor(_m2);
           return;
        }

        * ((::CORBA::Short *) (arginfo[0].ValuePtr)) = operateCatalogPermission (
            * ((::CORBA::Char * *) (arginfo[1].ValuePtr)),
            * ((::CORBA::Char * *) (arginfo[2].ValuePtr))
        );
        
        break;
        }

    case 21 : /* queryCatalogPermission */
        {
        if ( arg_count < 3 )
        {
           obb_request->OBB__set_exception_from_minor(_m2);
           return;
        }

        * ((::CORBA::Short *) (arginfo[0].ValuePtr)) = queryCatalogPermission (
            * ((::CORBA::Char * *) (arginfo[1].ValuePtr)),
            * ((::CORBA::Char * *) (arginfo[2].ValuePtr))
        );
        
        break;
        }

    case 22 : /* operateStaffPermission */
        {
        if ( arg_count < 3 )
        {
           obb_request->OBB__set_exception_from_minor(_m2);
           return;
        }

        * ((::CORBA::Short *) (arginfo[0].ValuePtr)) = operateStaffPermission (
            * ((::CORBA::Char * *) (arginfo[1].ValuePtr)),
            * ((::CORBA::Char * *) (arginfo[2].ValuePtr))
        );
        
        break;
        }

    case 23 : /* queryStaffPermission */
        {
        if ( arg_count < 3 )
        {
           obb_request->OBB__set_exception_from_minor(_m2);
           return;
        }

        * ((::CORBA::Short *) (arginfo[0].ValuePtr)) = queryStaffPermission (
            * ((::CORBA::Char * *) (arginfo[1].ValuePtr)),
            * ((::CORBA::Char * *) (arginfo[2].ValuePtr))
        );
        
        break;
        }

    case 24 : /* queryAppVersionList */
        {
        if ( arg_count < 3 )
        {
           obb_request->OBB__set_exception_from_minor(_m2);
           return;
        }

        * ((::CORBA::Short *) (arginfo[0].ValuePtr)) = queryAppVersionList (
            * ((::CORBA::Char * *) (arginfo[1].ValuePtr)),
            * ((::CORBA::Char * *) (arginfo[2].ValuePtr))
        );
        
        break;
        }

    case 25 : /* queryPpmPriceDescItemSpecTree */
        {
        if ( arg_count < 3 )
        {
           obb_request->OBB__set_exception_from_minor(_m2);
           return;
        }

        * ((::CORBA::Short *) (arginfo[0].ValuePtr)) = queryPpmPriceDescItemSpecTree (
            * ((::CORBA::Char * *) (arginfo[1].ValuePtr)),
            * ((::CORBA::Char * *) (arginfo[2].ValuePtr))
        );
        
        break;
        }

    case 26 : /* getPpmPriceRemark */
        {
        if ( arg_count < 3 )
        {
           obb_request->OBB__set_exception_from_minor(_m2);
           return;
        }

        * ((::CORBA::Short *) (arginfo[0].ValuePtr)) = getPpmPriceRemark (
            * ((::CORBA::Char * *) (arginfo[1].ValuePtr)),
            * ((::CORBA::Char * *) (arginfo[2].ValuePtr))
        );
        
        break;
        }

    case 27 : /* querySimilitudeAndMutexTree */
        {
        if ( arg_count < 3 )
        {
           obb_request->OBB__set_exception_from_minor(_m2);
           return;
        }

        * ((::CORBA::Short *) (arginfo[0].ValuePtr)) = querySimilitudeAndMutexTree (
            * ((::CORBA::Char * *) (arginfo[1].ValuePtr)),
            * ((::CORBA::Char * *) (arginfo[2].ValuePtr))
        );
        
        break;
        }

    case 28 : /* queryOperatorByCatalogId */
        {
        if ( arg_count < 3 )
        {
           obb_request->OBB__set_exception_from_minor(_m2);
           return;
        }

        * ((::CORBA::Short *) (arginfo[0].ValuePtr)) = queryOperatorByCatalogId (
            * ((::CORBA::Char * *) (arginfo[1].ValuePtr)),
            * ((::CORBA::Char * *) (arginfo[2].ValuePtr))
        );
        
        break;
        }

    case 29 : /* queryTaskBySimilitudeAndMutex */
        {
        if ( arg_count < 3 )
        {
           obb_request->OBB__set_exception_from_minor(_m2);
           return;
        }

        * ((::CORBA::Short *) (arginfo[0].ValuePtr)) = queryTaskBySimilitudeAndMutex (
            * ((::CORBA::Char * *) (arginfo[1].ValuePtr)),
            * ((::CORBA::Char * *) (arginfo[2].ValuePtr))
        );
        
        break;
        }

    case 30 : /* operateFlowTimeRecord */
        {
        if ( arg_count < 3 )
        {
           obb_request->OBB__set_exception_from_minor(_m2);
           return;
        }

        * ((::CORBA::Short *) (arginfo[0].ValuePtr)) = operateFlowTimeRecord (
            * ((::CORBA::Char * *) (arginfo[1].ValuePtr)),
            * ((::CORBA::Char * *) (arginfo[2].ValuePtr))
        );
        
        break;
        }

    case 31 : /* queryLogInfo */
        {
        if ( arg_count < 3 )
        {
           obb_request->OBB__set_exception_from_minor(_m2);
           return;
        }

        * ((::CORBA::Short *) (arginfo[0].ValuePtr)) = queryLogInfo (
            * ((::CORBA::Char * *) (arginfo[1].ValuePtr)),
            * ((::CORBA::Char * *) (arginfo[2].ValuePtr))
        );
        
        break;
        }

    case 32 : /* operaterLogInfo */
        {
        if ( arg_count < 3 )
        {
           obb_request->OBB__set_exception_from_minor(_m2);
           return;
        }

        * ((::CORBA::Short *) (arginfo[0].ValuePtr)) = operaterLogInfo (
            * ((::CORBA::Char * *) (arginfo[1].ValuePtr)),
            * ((::CORBA::Char * *) (arginfo[2].ValuePtr))
        );
        
        break;
        }

    case 33 : /* queryFlowTimeRecord */
        {
        if ( arg_count < 3 )
        {
           obb_request->OBB__set_exception_from_minor(_m2);
           return;
        }

        * ((::CORBA::Short *) (arginfo[0].ValuePtr)) = queryFlowTimeRecord (
            * ((::CORBA::Char * *) (arginfo[1].ValuePtr)),
            * ((::CORBA::Char * *) (arginfo[2].ValuePtr))
        );
        
        break;
        }

    case 34 : /* modifyTaskLevel */
        {
        if ( arg_count < 3 )
        {
           obb_request->OBB__set_exception_from_minor(_m2);
           return;
        }

        * ((::CORBA::Short *) (arginfo[0].ValuePtr)) = modifyTaskLevel (
            * ((::CORBA::Char * *) (arginfo[1].ValuePtr)),
            * ((::CORBA::Char * *) (arginfo[2].ValuePtr))
        );
        
        break;
        }

    case 35 : /* queryContactAppListByAppCode */
        {
        if ( arg_count < 3 )
        {
           obb_request->OBB__set_exception_from_minor(_m2);
           return;
        }

        * ((::CORBA::Short *) (arginfo[0].ValuePtr)) = queryContactAppListByAppCode (
            * ((::CORBA::Char * *) (arginfo[1].ValuePtr)),
            * ((::CORBA::Char * *) (arginfo[2].ValuePtr))
        );
        
        break;
        }

    case 36 : /* queryAttrSpec */
        {
        if ( arg_count < 3 )
        {
           obb_request->OBB__set_exception_from_minor(_m2);
           return;
        }

        * ((::CORBA::Short *) (arginfo[0].ValuePtr)) = queryAttrSpec (
            * ((::CORBA::Char * *) (arginfo[1].ValuePtr)),
            * ((::CORBA::Char * *) (arginfo[2].ValuePtr))
        );
        
        break;
        }

    case 37 : /* saveAttrSpec */
        {
        if ( arg_count < 3 )
        {
           obb_request->OBB__set_exception_from_minor(_m2);
           return;
        }

        * ((::CORBA::Short *) (arginfo[0].ValuePtr)) = saveAttrSpec (
            * ((::CORBA::Char * *) (arginfo[1].ValuePtr)),
            * ((::CORBA::Char * *) (arginfo[2].ValuePtr))
        );
        
        break;
        }

    case 38 : /* queryMktResource */
        {
        if ( arg_count < 3 )
        {
           obb_request->OBB__set_exception_from_minor(_m2);
           return;
        }

        * ((::CORBA::Short *) (arginfo[0].ValuePtr)) = queryMktResource (
            * ((::CORBA::Char * *) (arginfo[1].ValuePtr)),
            * ((::CORBA::Char * *) (arginfo[2].ValuePtr))
        );
        
        break;
        }

    case 39 : /* queryTemplateBasicInfo */
        {
        if ( arg_count < 3 )
        {
           obb_request->OBB__set_exception_from_minor(_m2);
           return;
        }

        * ((::CORBA::Short *) (arginfo[0].ValuePtr)) = queryTemplateBasicInfo (
            * ((::CORBA::Char * *) (arginfo[1].ValuePtr)),
            * ((::CORBA::Char * *) (arginfo[2].ValuePtr))
        );
        
        break;
        }

    case 40 : /* queryAppAndTestTraining */
        {
        if ( arg_count < 3 )
        {
           obb_request->OBB__set_exception_from_minor(_m2);
           return;
        }

        * ((::CORBA::Short *) (arginfo[0].ValuePtr)) = queryAppAndTestTraining (
            * ((::CORBA::Char * *) (arginfo[1].ValuePtr)),
            * ((::CORBA::Char * *) (arginfo[2].ValuePtr))
        );
        
        break;
        }

    case 41 : /* userAndIncomeThresholdConfig */
        {
        if ( arg_count < 3 )
        {
           obb_request->OBB__set_exception_from_minor(_m2);
           return;
        }

        * ((::CORBA::Short *) (arginfo[0].ValuePtr)) = userAndIncomeThresholdConfig (
            * ((::CORBA::Char * *) (arginfo[1].ValuePtr)),
            * ((::CORBA::Char * *) (arginfo[2].ValuePtr))
        );
        
        break;
        }

    case 42 : /* filterApplicationInfo */
        {
        if ( arg_count < 3 )
        {
           obb_request->OBB__set_exception_from_minor(_m2);
           return;
        }

        * ((::CORBA::Short *) (arginfo[0].ValuePtr)) = filterApplicationInfo (
            * ((::CORBA::Char * *) (arginfo[1].ValuePtr)),
            * ((::CORBA::Char * *) (arginfo[2].ValuePtr))
        );
        
        break;
        }

    case 43 : /* queryThresholdConfig */
        {
        if ( arg_count < 3 )
        {
           obb_request->OBB__set_exception_from_minor(_m2);
           return;
        }

        * ((::CORBA::Short *) (arginfo[0].ValuePtr)) = queryThresholdConfig (
            * ((::CORBA::Char * *) (arginfo[1].ValuePtr)),
            * ((::CORBA::Char * *) (arginfo[2].ValuePtr))
        );
        
        break;
        }

    case 44 : /* Statistics */
        {
        if ( arg_count < 3 )
        {
           obb_request->OBB__set_exception_from_minor(_m2);
           return;
        }

        * ((::CORBA::Short *) (arginfo[0].ValuePtr)) = Statistics (
            * ((::CORBA::Char * *) (arginfo[1].ValuePtr)),
            * ((::CORBA::Char * *) (arginfo[2].ValuePtr))
        );
        
        break;
        }

    case 45 : /* querySPInfo */
        {
        if ( arg_count < 3 )
        {
           obb_request->OBB__set_exception_from_minor(_m2);
           return;
        }

        * ((::CORBA::Short *) (arginfo[0].ValuePtr)) = querySPInfo (
            * ((::CORBA::Char * *) (arginfo[1].ValuePtr)),
            * ((::CORBA::Char * *) (arginfo[2].ValuePtr))
        );
        
        break;
        }

    case 46 : /* queryInterfaceInfo */
        {
        if ( arg_count < 3 )
        {
           obb_request->OBB__set_exception_from_minor(_m2);
           return;
        }

        * ((::CORBA::Short *) (arginfo[0].ValuePtr)) = queryInterfaceInfo (
            * ((::CORBA::Char * *) (arginfo[1].ValuePtr)),
            * ((::CORBA::Char * *) (arginfo[2].ValuePtr))
        );
        
        break;
        }

    case 47 : /* operateInterSendInfo */
        {
        if ( arg_count < 3 )
        {
           obb_request->OBB__set_exception_from_minor(_m2);
           return;
        }

        * ((::CORBA::Short *) (arginfo[0].ValuePtr)) = operateInterSendInfo (
            * ((::CORBA::Char * *) (arginfo[1].ValuePtr)),
            * ((::CORBA::Char * *) (arginfo[2].ValuePtr))
        );
        
        break;
        }

    case 48 : /* queryPricePlan */
        {
        if ( arg_count < 3 )
        {
           obb_request->OBB__set_exception_from_minor(_m2);
           return;
        }

        * ((::CORBA::Short *) (arginfo[0].ValuePtr)) = queryPricePlan (
            * ((::CORBA::Char * *) (arginfo[1].ValuePtr)),
            * ((::CORBA::Char * *) (arginfo[2].ValuePtr))
        );
        
        break;
        }

    case 49 : /* singleSignOn */
        {
        if ( arg_count < 3 )
        {
           obb_request->OBB__set_exception_from_minor(_m2);
           return;
        }

        * ((::CORBA::Short *) (arginfo[0].ValuePtr)) = singleSignOn (
            * ((::CORBA::Char * *) (arginfo[1].ValuePtr)),
            * ((::CORBA::Char * *) (arginfo[2].ValuePtr))
        );
        
        break;
        }

    case 50 : /* queryTeamInfo */
        {
        if ( arg_count < 3 )
        {
           obb_request->OBB__set_exception_from_minor(_m2);
           return;
        }

        * ((::CORBA::Short *) (arginfo[0].ValuePtr)) = queryTeamInfo (
            * ((::CORBA::Char * *) (arginfo[1].ValuePtr)),
            * ((::CORBA::Char * *) (arginfo[2].ValuePtr))
        );
        
        break;
        }

    case 51 : /* saveAccessoriesRela */
        {
        if ( arg_count < 3 )
        {
           obb_request->OBB__set_exception_from_minor(_m2);
           return;
        }

        * ((::CORBA::Short *) (arginfo[0].ValuePtr)) = saveAccessoriesRela (
            * ((::CORBA::Char * *) (arginfo[1].ValuePtr)),
            * ((::CORBA::Char * *) (arginfo[2].ValuePtr))
        );
        
        break;
        }

    case 52 : /* queryAccessoriesRela */
        {
        if ( arg_count < 3 )
        {
           obb_request->OBB__set_exception_from_minor(_m2);
           return;
        }

        * ((::CORBA::Short *) (arginfo[0].ValuePtr)) = queryAccessoriesRela (
            * ((::CORBA::Char * *) (arginfo[1].ValuePtr)),
            * ((::CORBA::Char * *) (arginfo[2].ValuePtr))
        );
        
        break;
        }

    case 53 : /* savePriceTemplate */
        {
        if ( arg_count < 3 )
        {
           obb_request->OBB__set_exception_from_minor(_m2);
           return;
        }

        * ((::CORBA::Short *) (arginfo[0].ValuePtr)) = savePriceTemplate (
            * ((::CORBA::Char * *) (arginfo[1].ValuePtr)),
            * ((::CORBA::Char * *) (arginfo[2].ValuePtr))
        );
        
        break;
        }

    case 54 : /* queryPriceTemplate */
        {
        if ( arg_count < 3 )
        {
           obb_request->OBB__set_exception_from_minor(_m2);
           return;
        }

        * ((::CORBA::Short *) (arginfo[0].ValuePtr)) = queryPriceTemplate (
            * ((::CORBA::Char * *) (arginfo[1].ValuePtr)),
            * ((::CORBA::Char * *) (arginfo[2].ValuePtr))
        );
        
        break;
        }

    case 55 : /* ProdConfigCompleteSV */
        {
        if ( arg_count < 3 )
        {
           obb_request->OBB__set_exception_from_minor(_m2);
           return;
        }

        * ((::CORBA::Short *) (arginfo[0].ValuePtr)) = ProdConfigCompleteSV (
            * ((::CORBA::Char * *) (arginfo[1].ValuePtr)),
            * ((::CORBA::Char * *) (arginfo[2].ValuePtr))
        );
        
        break;
        }

    case 56 : /* VAProdSV */
        {
        if ( arg_count < 3 )
        {
           obb_request->OBB__set_exception_from_minor(_m2);
           return;
        }

        * ((::CORBA::Short *) (arginfo[0].ValuePtr)) = VAProdSV (
            * ((::CORBA::Char * *) (arginfo[1].ValuePtr)),
            * ((::CORBA::Char * *) (arginfo[2].ValuePtr))
        );
        
        break;
        }

    case 57 : /* VAProdOfferSV */
        {
        if ( arg_count < 3 )
        {
           obb_request->OBB__set_exception_from_minor(_m2);
           return;
        }

        * ((::CORBA::Short *) (arginfo[0].ValuePtr)) = VAProdOfferSV (
            * ((::CORBA::Char * *) (arginfo[1].ValuePtr)),
            * ((::CORBA::Char * *) (arginfo[2].ValuePtr))
        );
        
        break;
        }

    case 58 : /* GroupProdReleaseSV */
        {
        if ( arg_count < 3 )
        {
           obb_request->OBB__set_exception_from_minor(_m2);
           return;
        }

        * ((::CORBA::Short *) (arginfo[0].ValuePtr)) = GroupProdReleaseSV (
            * ((::CORBA::Char * *) (arginfo[1].ValuePtr)),
            * ((::CORBA::Char * *) (arginfo[2].ValuePtr))
        );
        
        break;
        }

    case 59 : /* GroupProdOfferReleaseSV */
        {
        if ( arg_count < 3 )
        {
           obb_request->OBB__set_exception_from_minor(_m2);
           return;
        }

        * ((::CORBA::Short *) (arginfo[0].ValuePtr)) = GroupProdOfferReleaseSV (
            * ((::CORBA::Char * *) (arginfo[1].ValuePtr)),
            * ((::CORBA::Char * *) (arginfo[2].ValuePtr))
        );
        
        break;
        }

    case 60 : /* pubSendInterFace */
        {
        if ( arg_count < 3 )
        {
           obb_request->OBB__set_exception_from_minor(_m2);
           return;
        }

        * ((::CORBA::Short *) (arginfo[0].ValuePtr)) = pubSendInterFace (
            * ((::CORBA::Char * *) (arginfo[1].ValuePtr)),
            * ((::CORBA::Char * *) (arginfo[2].ValuePtr))
        );
        
        break;
        }

    case 61 : /* procMdseRela */
        {
        if ( arg_count < 3 )
        {
           obb_request->OBB__set_exception_from_minor(_m2);
           return;
        }

        * ((::CORBA::Short *) (arginfo[0].ValuePtr)) = procMdseRela (
            * ((::CORBA::Char * *) (arginfo[1].ValuePtr)),
            * ((::CORBA::Char * *) (arginfo[2].ValuePtr))
        );
        
        break;
        }

    case 62 : /* dispatchPPMOrder */
        {
        if ( arg_count < 3 )
        {
           obb_request->OBB__set_exception_from_minor(_m2);
           return;
        }

        * ((::CORBA::Short *) (arginfo[0].ValuePtr)) = dispatchPPMOrder (
            * ((::CORBA::Char * *) (arginfo[1].ValuePtr)),
            * ((::CORBA::Char * *) (arginfo[2].ValuePtr))
        );
        
        break;
        }

    case 63 : /* mdseComposition */
        {
        if ( arg_count < 3 )
        {
           obb_request->OBB__set_exception_from_minor(_m2);
           return;
        }

        * ((::CORBA::Short *) (arginfo[0].ValuePtr)) = mdseComposition (
            * ((::CORBA::Char * *) (arginfo[1].ValuePtr)),
            * ((::CORBA::Char * *) (arginfo[2].ValuePtr))
        );
        
        break;
        }

    case 64 : /* _is_a */
        {
        if ( arg_count < 2 )
        {
           obb_request->OBB__set_exception_from_minor(_m2);
           return;
        }

        if (strcmp((const char *)POA_Ppm_IPpm_info[0].interface_id, * ((const char **)(arginfo[1].ValuePtr))) == 0)
           * ((::CORBA::Boolean *)(arginfo[0].ValuePtr)) = CORBA_TRUE;
        else
           * ((::CORBA::Boolean *)(arginfo[0].ValuePtr)) = CORBA_FALSE;
        break;

        }

    default :
        obb_request->OBB__set_exception_from_minor(_m1);
        break;
    }

    return;

}


//
//
// Function Name:	POA_Ppm::IPpm::_primary_interface
//
// Functional Description:
//
//	This is the _primary_interface function of the POA skeleton.
//	It returns the most derived interface.
//
//

::CORBA::RepositoryId
POA_Ppm::IPpm::_primary_interface (
        const PortableServer::ObjectId &,
        PortableServer::POA_ptr)
{
    ::CORBA::Char *pi = ::CORBA::string_dup(Ppm::IPpm::_get_interface_name());
    return pi;
}

//
//
// Function Name:	POA_Ppm::IPpm::getparams
//
// Functional Description:
//
//	This is the private getparams function of the POA skeleton.
//	It packages the arguments for the invoke function.
//
//

OBBArgument *
POA_Ppm::IPpm::getparams(::CORBA::Short index, OBB::ServerRequest * SrvReq, ::CORBA::ULong & ArgCnt)
{
    static const ::CORBA::Short ArgOffsetAndLen[130] = {
	0,2,3,2,6,2,9,2,12,2,15,2,18,2,21,2,
	24,2,27,2,30,2,33,2,36,2,39,2,42,2,45,2,
	48,2,51,2,54,2,57,2,60,2,63,2,66,2,69,2,
	72,2,75,2,78,2,81,2,84,2,87,2,90,2,93,2,
	96,2,99,2,102,2,105,2,108,2,111,2,114,2,117,2,
	120,2,123,2,126,2,129,2,132,2,135,2,138,2,141,2,
	144,2,147,2,150,2,153,2,156,2,159,2,162,2,165,2,
	168,2,171,2,174,2,177,2,180,2,183,2,186,2,189,2,
	192,1
    };
    static ::CORBA::Boolean ArgTCTableInit = CORBA_FALSE;
    static ::CORBA::TypeCode_ptr ArgTCTable[194];
    if (ArgTCTableInit == CORBA_FALSE)
    {
    	ArgTCTable[0] = ::CORBA::_tc_short;
    	ArgTCTable[1] = ::CORBA::_tc_string;
    	ArgTCTable[2] = ::CORBA::_tc_string;
    	ArgTCTable[3] = ::CORBA::_tc_short;
    	ArgTCTable[4] = ::CORBA::_tc_string;
    	ArgTCTable[5] = ::CORBA::_tc_string;
    	ArgTCTable[6] = ::CORBA::_tc_short;
    	ArgTCTable[7] = ::CORBA::_tc_string;
    	ArgTCTable[8] = ::CORBA::_tc_string;
    	ArgTCTable[9] = ::CORBA::_tc_short;
    	ArgTCTable[10] = ::CORBA::_tc_string;
    	ArgTCTable[11] = ::CORBA::_tc_string;
    	ArgTCTable[12] = ::CORBA::_tc_short;
    	ArgTCTable[13] = ::CORBA::_tc_string;
    	ArgTCTable[14] = ::CORBA::_tc_string;
    	ArgTCTable[15] = ::CORBA::_tc_short;
    	ArgTCTable[16] = ::CORBA::_tc_string;
    	ArgTCTable[17] = ::CORBA::_tc_string;
    	ArgTCTable[18] = ::CORBA::_tc_short;
    	ArgTCTable[19] = ::CORBA::_tc_string;
    	ArgTCTable[20] = ::CORBA::_tc_string;
    	ArgTCTable[21] = ::CORBA::_tc_short;
    	ArgTCTable[22] = ::CORBA::_tc_string;
    	ArgTCTable[23] = ::CORBA::_tc_string;
    	ArgTCTable[24] = ::CORBA::_tc_short;
    	ArgTCTable[25] = ::CORBA::_tc_string;
    	ArgTCTable[26] = ::CORBA::_tc_string;
    	ArgTCTable[27] = ::CORBA::_tc_short;
    	ArgTCTable[28] = ::CORBA::_tc_string;
    	ArgTCTable[29] = ::CORBA::_tc_string;
    	ArgTCTable[30] = ::CORBA::_tc_short;
    	ArgTCTable[31] = ::CORBA::_tc_string;
    	ArgTCTable[32] = ::CORBA::_tc_string;
    	ArgTCTable[33] = ::CORBA::_tc_short;
    	ArgTCTable[34] = ::CORBA::_tc_string;
    	ArgTCTable[35] = ::CORBA::_tc_string;
    	ArgTCTable[36] = ::CORBA::_tc_short;
    	ArgTCTable[37] = ::CORBA::_tc_string;
    	ArgTCTable[38] = ::CORBA::_tc_string;
    	ArgTCTable[39] = ::CORBA::_tc_short;
    	ArgTCTable[40] = ::CORBA::_tc_string;
    	ArgTCTable[41] = ::CORBA::_tc_string;
    	ArgTCTable[42] = ::CORBA::_tc_short;
    	ArgTCTable[43] = ::CORBA::_tc_string;
    	ArgTCTable[44] = ::CORBA::_tc_string;
    	ArgTCTable[45] = ::CORBA::_tc_short;
    	ArgTCTable[46] = ::CORBA::_tc_string;
    	ArgTCTable[47] = ::CORBA::_tc_string;
    	ArgTCTable[48] = ::CORBA::_tc_short;
    	ArgTCTable[49] = ::CORBA::_tc_string;
    	ArgTCTable[50] = ::CORBA::_tc_string;
    	ArgTCTable[51] = ::CORBA::_tc_short;
    	ArgTCTable[52] = ::CORBA::_tc_string;
    	ArgTCTable[53] = ::CORBA::_tc_string;
    	ArgTCTable[54] = ::CORBA::_tc_short;
    	ArgTCTable[55] = ::CORBA::_tc_string;
    	ArgTCTable[56] = ::CORBA::_tc_string;
    	ArgTCTable[57] = ::CORBA::_tc_short;
    	ArgTCTable[58] = ::CORBA::_tc_string;
    	ArgTCTable[59] = ::CORBA::_tc_string;
    	ArgTCTable[60] = ::CORBA::_tc_short;
    	ArgTCTable[61] = ::CORBA::_tc_string;
    	ArgTCTable[62] = ::CORBA::_tc_string;
    	ArgTCTable[63] = ::CORBA::_tc_short;
    	ArgTCTable[64] = ::CORBA::_tc_string;
    	ArgTCTable[65] = ::CORBA::_tc_string;
    	ArgTCTable[66] = ::CORBA::_tc_short;
    	ArgTCTable[67] = ::CORBA::_tc_string;
    	ArgTCTable[68] = ::CORBA::_tc_string;
    	ArgTCTable[69] = ::CORBA::_tc_short;
    	ArgTCTable[70] = ::CORBA::_tc_string;
    	ArgTCTable[71] = ::CORBA::_tc_string;
    	ArgTCTable[72] = ::CORBA::_tc_short;
    	ArgTCTable[73] = ::CORBA::_tc_string;
    	ArgTCTable[74] = ::CORBA::_tc_string;
    	ArgTCTable[75] = ::CORBA::_tc_short;
    	ArgTCTable[76] = ::CORBA::_tc_string;
    	ArgTCTable[77] = ::CORBA::_tc_string;
    	ArgTCTable[78] = ::CORBA::_tc_short;
    	ArgTCTable[79] = ::CORBA::_tc_string;
    	ArgTCTable[80] = ::CORBA::_tc_string;
    	ArgTCTable[81] = ::CORBA::_tc_short;
    	ArgTCTable[82] = ::CORBA::_tc_string;
    	ArgTCTable[83] = ::CORBA::_tc_string;
    	ArgTCTable[84] = ::CORBA::_tc_short;
    	ArgTCTable[85] = ::CORBA::_tc_string;
    	ArgTCTable[86] = ::CORBA::_tc_string;
    	ArgTCTable[87] = ::CORBA::_tc_short;
    	ArgTCTable[88] = ::CORBA::_tc_string;
    	ArgTCTable[89] = ::CORBA::_tc_string;
    	ArgTCTable[90] = ::CORBA::_tc_short;
    	ArgTCTable[91] = ::CORBA::_tc_string;
    	ArgTCTable[92] = ::CORBA::_tc_string;
    	ArgTCTable[93] = ::CORBA::_tc_short;
    	ArgTCTable[94] = ::CORBA::_tc_string;
    	ArgTCTable[95] = ::CORBA::_tc_string;
    	ArgTCTable[96] = ::CORBA::_tc_short;
    	ArgTCTable[97] = ::CORBA::_tc_string;
    	ArgTCTable[98] = ::CORBA::_tc_string;
    	ArgTCTable[99] = ::CORBA::_tc_short;
    	ArgTCTable[100] = ::CORBA::_tc_string;
    	ArgTCTable[101] = ::CORBA::_tc_string;
    	ArgTCTable[102] = ::CORBA::_tc_short;
    	ArgTCTable[103] = ::CORBA::_tc_string;
    	ArgTCTable[104] = ::CORBA::_tc_string;
    	ArgTCTable[105] = ::CORBA::_tc_short;
    	ArgTCTable[106] = ::CORBA::_tc_string;
    	ArgTCTable[107] = ::CORBA::_tc_string;
    	ArgTCTable[108] = ::CORBA::_tc_short;
    	ArgTCTable[109] = ::CORBA::_tc_string;
    	ArgTCTable[110] = ::CORBA::_tc_string;
    	ArgTCTable[111] = ::CORBA::_tc_short;
    	ArgTCTable[112] = ::CORBA::_tc_string;
    	ArgTCTable[113] = ::CORBA::_tc_string;
    	ArgTCTable[114] = ::CORBA::_tc_short;
    	ArgTCTable[115] = ::CORBA::_tc_string;
    	ArgTCTable[116] = ::CORBA::_tc_string;
    	ArgTCTable[117] = ::CORBA::_tc_short;
    	ArgTCTable[118] = ::CORBA::_tc_string;
    	ArgTCTable[119] = ::CORBA::_tc_string;
    	ArgTCTable[120] = ::CORBA::_tc_short;
    	ArgTCTable[121] = ::CORBA::_tc_string;
    	ArgTCTable[122] = ::CORBA::_tc_string;
    	ArgTCTable[123] = ::CORBA::_tc_short;
    	ArgTCTable[124] = ::CORBA::_tc_string;
    	ArgTCTable[125] = ::CORBA::_tc_string;
    	ArgTCTable[126] = ::CORBA::_tc_short;
    	ArgTCTable[127] = ::CORBA::_tc_string;
    	ArgTCTable[128] = ::CORBA::_tc_string;
    	ArgTCTable[129] = ::CORBA::_tc_short;
    	ArgTCTable[130] = ::CORBA::_tc_string;
    	ArgTCTable[131] = ::CORBA::_tc_string;
    	ArgTCTable[132] = ::CORBA::_tc_short;
    	ArgTCTable[133] = ::CORBA::_tc_string;
    	ArgTCTable[134] = ::CORBA::_tc_string;
    	ArgTCTable[135] = ::CORBA::_tc_short;
    	ArgTCTable[136] = ::CORBA::_tc_string;
    	ArgTCTable[137] = ::CORBA::_tc_string;
    	ArgTCTable[138] = ::CORBA::_tc_short;
    	ArgTCTable[139] = ::CORBA::_tc_string;
    	ArgTCTable[140] = ::CORBA::_tc_string;
    	ArgTCTable[141] = ::CORBA::_tc_short;
    	ArgTCTable[142] = ::CORBA::_tc_string;
    	ArgTCTable[143] = ::CORBA::_tc_string;
    	ArgTCTable[144] = ::CORBA::_tc_short;
    	ArgTCTable[145] = ::CORBA::_tc_string;
    	ArgTCTable[146] = ::CORBA::_tc_string;
    	ArgTCTable[147] = ::CORBA::_tc_short;
    	ArgTCTable[148] = ::CORBA::_tc_string;
    	ArgTCTable[149] = ::CORBA::_tc_string;
    	ArgTCTable[150] = ::CORBA::_tc_short;
    	ArgTCTable[151] = ::CORBA::_tc_string;
    	ArgTCTable[152] = ::CORBA::_tc_string;
    	ArgTCTable[153] = ::CORBA::_tc_short;
    	ArgTCTable[154] = ::CORBA::_tc_string;
    	ArgTCTable[155] = ::CORBA::_tc_string;
    	ArgTCTable[156] = ::CORBA::_tc_short;
    	ArgTCTable[157] = ::CORBA::_tc_string;
    	ArgTCTable[158] = ::CORBA::_tc_string;
    	ArgTCTable[159] = ::CORBA::_tc_short;
    	ArgTCTable[160] = ::CORBA::_tc_string;
    	ArgTCTable[161] = ::CORBA::_tc_string;
    	ArgTCTable[162] = ::CORBA::_tc_short;
    	ArgTCTable[163] = ::CORBA::_tc_string;
    	ArgTCTable[164] = ::CORBA::_tc_string;
    	ArgTCTable[165] = ::CORBA::_tc_short;
    	ArgTCTable[166] = ::CORBA::_tc_string;
    	ArgTCTable[167] = ::CORBA::_tc_string;
    	ArgTCTable[168] = ::CORBA::_tc_short;
    	ArgTCTable[169] = ::CORBA::_tc_string;
    	ArgTCTable[170] = ::CORBA::_tc_string;
    	ArgTCTable[171] = ::CORBA::_tc_short;
    	ArgTCTable[172] = ::CORBA::_tc_string;
    	ArgTCTable[173] = ::CORBA::_tc_string;
    	ArgTCTable[174] = ::CORBA::_tc_short;
    	ArgTCTable[175] = ::CORBA::_tc_string;
    	ArgTCTable[176] = ::CORBA::_tc_string;
    	ArgTCTable[177] = ::CORBA::_tc_short;
    	ArgTCTable[178] = ::CORBA::_tc_string;
    	ArgTCTable[179] = ::CORBA::_tc_string;
    	ArgTCTable[180] = ::CORBA::_tc_short;
    	ArgTCTable[181] = ::CORBA::_tc_string;
    	ArgTCTable[182] = ::CORBA::_tc_string;
    	ArgTCTable[183] = ::CORBA::_tc_short;
    	ArgTCTable[184] = ::CORBA::_tc_string;
    	ArgTCTable[185] = ::CORBA::_tc_string;
    	ArgTCTable[186] = ::CORBA::_tc_short;
    	ArgTCTable[187] = ::CORBA::_tc_string;
    	ArgTCTable[188] = ::CORBA::_tc_string;
    	ArgTCTable[189] = ::CORBA::_tc_short;
    	ArgTCTable[190] = ::CORBA::_tc_string;
    	ArgTCTable[191] = ::CORBA::_tc_string;
    	ArgTCTable[192] = ::CORBA::_tc_boolean;
    	ArgTCTable[193] = ::CORBA::_tc_string;
    	ArgTCTableInit = CORBA_TRUE;
    }
    static ::CORBA::Flags FlagsTable[194] = {
	66,1,2,
	66,1,2,
	66,1,2,
	66,1,2,
	66,1,2,
	66,1,2,
	66,1,2,
	66,1,2,
	66,1,2,
	66,1,2,
	66,1,2,
	66,1,2,
	66,1,2,
	66,1,2,
	66,1,2,
	66,1,2,
	66,1,2,
	66,1,2,
	66,1,2,
	66,1,2,
	66,1,2,
	66,1,2,
	66,1,2,
	66,1,2,
	66,1,2,
	66,1,2,
	66,1,2,
	66,1,2,
	66,1,2,
	66,1,2,
	66,1,2,
	66,1,2,
	66,1,2,
	66,1,2,
	66,1,2,
	66,1,2,
	66,1,2,
	66,1,2,
	66,1,2,
	66,1,2,
	66,1,2,
	66,1,2,
	66,1,2,
	66,1,2,
	66,1,2,
	66,1,2,
	66,1,2,
	66,1,2,
	66,1,2,
	66,1,2,
	66,1,2,
	66,1,2,
	66,1,2,
	66,1,2,
	66,1,2,
	66,1,2,
	66,1,2,
	66,1,2,
	66,1,2,
	66,1,2,
	66,1,2,
	66,1,2,
	66,1,2,
	66,1,2,
	66,1
    };
    ::CORBA::Short	i;
    ::CORBA::TypeCode_ptr	*index_ptr;
    ::CORBA::Flags	*flags_ptr;
    ::CORBA::Short	arg_count;
    ::CORBA::Short	arg_offset;
    OBBArgument *arg_info;
    OBBArgument *arg_ptr;

 /*..............................................................*/


    arg_offset = ArgOffsetAndLen[index*2];
    index_ptr = &ArgTCTable[arg_offset];
    arg_count = ArgOffsetAndLen[index*2+1];
    ArgCnt = arg_count + 1;
    flags_ptr = &FlagsTable[arg_offset];

    arg_info = SrvReq->OBB__create_argument_info(arg_count+1);
    arg_ptr = arg_info;
    if ( ! arg_info )
       return 0;

    for (i = 0; i <= arg_count; i++, arg_ptr++, index_ptr++, flags_ptr++)
    {
       arg_ptr->TC = *index_ptr;
       arg_ptr->Flags = *flags_ptr;
    }

    return arg_info;

}
// Server registration data and class function
OBB::OBBInterfaceInfo POA_Ppm_PpmFactory_info[1] = 
{
{(char*)"IDL:Ppm/PpmFactory:1.0", (char*)"IDL:POA_Ppm/PpmFactory_i:1.0", 1, 3}
};
static OBB::OBBInterfaceDescriptor POA_Ppm_PpmFactory_Interfaces (POA_Ppm_PpmFactory_info, 1);


//
//
// Function Name:	Ppm::PpmFactory::_this
//
// Functional Description:
//
//	This is the _this function of the POA skeleton.
//
//

Ppm::PpmFactory_ptr
POA_Ppm::PpmFactory::_this()
{
    ::CORBA::Object_ptr obj_ptr = OBB__this();
    Ppm::PpmFactory_ptr ret_ptr = Ppm::PpmFactory::_narrow(obj_ptr);

    ::CORBA::release(obj_ptr);
    return ret_ptr;
}


//
//
// Function Name:	POA_Ppm::PpmFactory::invoke
//
// Functional Description:
//
//	This is the invoke function of the POA skeleton.
//
//

void
POA_Ppm::PpmFactory::invoke (
        ::CORBA::ServerRequest_ptr _nasreq) 
{
static const struct {
	CORBA::Char    Bucket0 [7];	CORBA::Char    Bucket1 [10];
    } _BT = {
        "_is_a\000",
        "findIPpm\000"
    };
static  OBBHashTableEntry     _HT [2] = {
    {   0,     0 },    {   1,     7 }
    };
static ::CORBA::UShort _OM[2] = {
	1,0
    };
 ::CORBA::UShort          method_index;
 ::CORBA::Short           oper_index;
 OBBArgument            *arginfo;
 ::CORBA::ULong           arg_count;
 OBB::ServerRequest     *obb_request = OBB::ServerRequest::OBB__convert_scope(_nasreq);
 OBB::MinorCode         _m1 = (OBB::MinorCode)OBBMC_INV_MTHDNOTFND;
 OBB::MinorCode         _m2 = (OBB::MinorCode)OBBMC_INV_ARGMISMCHNUM;
 const char             *op = obb_request->operation();
 ::CORBA::Context_ptr     reqctx;

 /*..............................................................*/

 oper_index = OBB::OBB__method_hash(op, 2, _HT, (const char *) &_BT.Bucket0);
 if (oper_index < 0)
    { obb_request->OBB__set_exception_from_minor(_m1); return; }
 method_index = _OM[oper_index];
 arginfo = getparams(method_index, obb_request, arg_count);
 obb_request->OBB__arguments();

 reqctx = obb_request->OBB__ctx();

 switch ( method_index )
    {
    case 0 : /* findIPpm */
        {
        if ( arg_count < 1 )
        {
           obb_request->OBB__set_exception_from_minor(_m2);
           return;
        }

        * ((::Ppm::IPpm_ptr *) (arginfo[0].ValuePtr)) = findIPpm (
        );
        
        break;
        }

    case 1 : /* _is_a */
        {
        if ( arg_count < 2 )
        {
           obb_request->OBB__set_exception_from_minor(_m2);
           return;
        }

        if (strcmp((const char *)POA_Ppm_PpmFactory_info[0].interface_id, * ((const char **)(arginfo[1].ValuePtr))) == 0)
           * ((::CORBA::Boolean *)(arginfo[0].ValuePtr)) = CORBA_TRUE;
        else
           * ((::CORBA::Boolean *)(arginfo[0].ValuePtr)) = CORBA_FALSE;
        break;

        }

    default :
        obb_request->OBB__set_exception_from_minor(_m1);
        break;
    }

    return;

}


//
//
// Function Name:	POA_Ppm::PpmFactory::_primary_interface
//
// Functional Description:
//
//	This is the _primary_interface function of the POA skeleton.
//	It returns the most derived interface.
//
//

::CORBA::RepositoryId
POA_Ppm::PpmFactory::_primary_interface (
        const PortableServer::ObjectId &,
        PortableServer::POA_ptr)
{
    ::CORBA::Char *pi = ::CORBA::string_dup(Ppm::PpmFactory::_get_interface_name());
    return pi;
}

//
//
// Function Name:	POA_Ppm::PpmFactory::getparams
//
// Functional Description:
//
//	This is the private getparams function of the POA skeleton.
//	It packages the arguments for the invoke function.
//
//

OBBArgument *
POA_Ppm::PpmFactory::getparams(::CORBA::Short index, OBB::ServerRequest * SrvReq, ::CORBA::ULong & ArgCnt)
{
    static const ::CORBA::Short ArgOffsetAndLen[4] = {
	0,0,1,1
    };
    static ::CORBA::Boolean ArgTCTableInit = CORBA_FALSE;
    static ::CORBA::TypeCode_ptr ArgTCTable[3];
    if (ArgTCTableInit == CORBA_FALSE)
    {
    	ArgTCTable[0] = ::Ppm::_tc_IPpm;
    	ArgTCTable[1] = ::CORBA::_tc_boolean;
    	ArgTCTable[2] = ::CORBA::_tc_string;
    	ArgTCTableInit = CORBA_TRUE;
    }
    static ::CORBA::Flags FlagsTable[3] = {
	66,
	66,1
    };
    ::CORBA::Short	i;
    ::CORBA::TypeCode_ptr	*index_ptr;
    ::CORBA::Flags	*flags_ptr;
    ::CORBA::Short	arg_count;
    ::CORBA::Short	arg_offset;
    OBBArgument *arg_info;
    OBBArgument *arg_ptr;

 /*..............................................................*/


    arg_offset = ArgOffsetAndLen[index*2];
    index_ptr = &ArgTCTable[arg_offset];
    arg_count = ArgOffsetAndLen[index*2+1];
    ArgCnt = arg_count + 1;
    flags_ptr = &FlagsTable[arg_offset];

    arg_info = SrvReq->OBB__create_argument_info(arg_count+1);
    arg_ptr = arg_info;
    if ( ! arg_info )
       return 0;

    for (i = 0; i <= arg_count; i++, arg_ptr++, index_ptr++, flags_ptr++)
    {
       arg_ptr->TC = *index_ptr;
       arg_ptr->Flags = *flags_ptr;
    }

    return arg_info;

}
